home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / class / ushrtary.d < prev    next >
Text File  |  1996-02-04  |  2KB  |  137 lines

  1.  
  2.  
  3.  
  4. /*                                      
  5.  *
  6.  *      Copyright (c) 1993-1996 Algorithms Corporation
  7.  *      3020 Liberty Hills Drive
  8.  *      Franklin, TN 37067
  9.  *
  10.  *      ALL RIGHTS RESERVED.
  11.  *
  12.  *      
  13.  *      
  14.  */
  15.  
  16.  
  17.  
  18. #include "array1.h"
  19.  
  20.  
  21. defclass  UnsignedShortArray : NumberArray  {
  22.     init:    init_class;
  23. };
  24.  
  25.  
  26. #define TYPE    unsigned short
  27.  
  28.  
  29. static    gIndex_t    _index;
  30.  
  31.  
  32. cvmeth    vNew(unsigned rank, ...)
  33. {
  34.     static    gNewArray_t    cnew = NULL;
  35.     MAKE_REST(rank);
  36.  
  37.     if (!cnew)
  38.         cnew = cmcPointer(Array, gNewArray);
  39.     return cnew(self, AT_USHT, rank, _rest_);
  40. }
  41.  
  42. ivmeth    char    vCharValue(...)
  43. {
  44.     MAKE_REST(self);
  45.     return (char) *((TYPE *) _index(self, _rest_));
  46. }
  47.  
  48. ivmeth    short    vShortValue(...)
  49. {
  50.     MAKE_REST(self);
  51.     return (short) *((TYPE *) _index(self, _rest_));
  52. }
  53.  
  54. ivmeth    unsigned short    vUnsignedShortValue(...)
  55. {
  56.     MAKE_REST(self);
  57.     return (unsigned short) *((TYPE *) _index(self, _rest_));
  58. }
  59.  
  60. ivmeth    long    vLongValue(...)
  61. {
  62.     MAKE_REST(self);
  63.     return (long) *((TYPE *) _index(self, _rest_));
  64. }
  65.  
  66. ivmeth    double    vDoubleValue(...)
  67. {
  68.     MAKE_REST(self);
  69.     return (double) *((TYPE *) _index(self, _rest_));
  70. }
  71.  
  72. ivmeth    vChangeValue(val, ...)
  73. {
  74.     MAKE_REST(val);
  75.     ChkArg(val, 2);
  76.     *((TYPE *) _index(self, _rest_)) = gUnsignedShortValue(val);
  77.     return self;
  78. }
  79.  
  80. ivmeth    vChangeCharValue(int val, ...)
  81. {
  82.     MAKE_REST(val);
  83.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  84.     return self;
  85. }
  86.  
  87. ivmeth    vChangeShortValue(int val, ...)
  88. {
  89.     MAKE_REST(val);
  90.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  91.     return self;
  92. }
  93.  
  94. ivmeth    vChangeUShortValue(unsigned val, ...)
  95. {
  96.     MAKE_REST(val);
  97.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  98.     return self;
  99. }
  100.  
  101. ivmeth    vChangeLongValue(long val, ...)
  102. {
  103.     MAKE_REST(val);
  104.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  105.     return self;
  106. }
  107.  
  108. ivmeth    vChangeDoubleValue(double val, ...)
  109. {
  110.     MAKE_REST(val);
  111.     *((TYPE *) _index(self, _rest_)) = (TYPE) val;
  112.     return self;
  113. }
  114.  
  115. static    void    init_class(void)
  116. {
  117.     _index = imcPointer(Array, gIndex);
  118. }
  119.  
  120.  
  121.  
  122.  
  123. /*                                      
  124.  *
  125.  *      Copyright (c) 1993-1996 Algorithms Corporation
  126.  *      3020 Liberty Hills Drive
  127.  *      Franklin, TN 37067
  128.  *
  129.  *      ALL RIGHTS RESERVED.
  130.  *
  131.  *      
  132.  *      
  133.  */
  134.  
  135.  
  136.  
  137.